#ifndef GULLENGINE_API3D_H
#define GULLENGINE_API3D_H

#include "GullError.h"
#include "Matrix4x3.h"
#include "Vector3D.h"
#include "LightNode.h"

namespace gull {
	namespace core {
		
		class API3D{
		public:
			virtual gullNotification init3DContext() = 0;
			virtual void refreshFrame() const = 0;
			virtual void reshapeFrame(int w, int h) const = 0;
			virtual void setCamera(const Matrix4x3& cam) const = 0;
			virtual void setMatrixWorld(const Matrix4x3& newMatrix) const = 0;
			virtual void drawTriangle(const Vector3D& a, const Vector3D& b, const Vector3D& c) const = 0;
			virtual void drawTriangle(double edge) const = 0;
			virtual void setLight(const LightNode& light) const = 0;
			
		protected:
		private:
		};
		
		
	}
}


#endif


